From 807da6b11e9a5821add1438247fbde3a6435dbe0 Mon Sep 17 00:00:00 2001 From: Gleb Kozyrev Date: Sat, 10 Oct 2015 17:39:19 +0300 Subject: [PATCH] Propagate custom cfg directives to rustdoc, fixes #1980 --- src/cargo/ops/cargo_rustc/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cargo/ops/cargo_rustc/mod.rs b/src/cargo/ops/cargo_rustc/mod.rs index fab000d17..8461f4837 100644 --- a/src/cargo/ops/cargo_rustc/mod.rs +++ b/src/cargo/ops/cargo_rustc/mod.rs @@ -398,11 +398,17 @@ fn rustdoc(cx: &mut Context, unit: &Unit) -> CargoResult { } let name = unit.pkg.name().to_string(); - let desc = rustdoc.to_string(); + let build_state = cx.build_state.clone(); + let key = (unit.pkg.package_id().clone(), unit.kind); let exec_engine = cx.exec_engine.clone(); Ok(Work::new(move |desc_tx| { - desc_tx.send(desc).unwrap(); + if let Some(output) = build_state.outputs.lock().unwrap().get(&key) { + for cfg in output.cfgs.iter() { + rustdoc.arg("--cfg").arg(cfg); + } + } + desc_tx.send(rustdoc.to_string()).unwrap(); exec_engine.exec(rustdoc).chain_error(|| { human(format!("Could not document `{}`.", name)) }) -- 2.30.2